package com.javabasic.thread;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * @Author xiongmin
 * @Description //TODO
 * @Date 2020/6/8 0:07
 * @Version 1.0
 **/
@AllArgsConstructor
@NoArgsConstructor
public class RegisterClient implements Callback, SendMail {


    @Getter
    @Setter
    private String userName;
    @Getter
    @Setter
    private String passWord;

    // TODO 异步发送邮件
    public void AsycRegister() {
        boolean result = checkInfo(userName, passWord);
        if (!result) {
            System.out.println("账号，密码错误，注册失败");
        }

        // 注册账号 操作
        System.out.println("注册账户");


        // 发送邮件
        SendMailThread sendMail = new SendMailThread(this);
        sendMail.start();

        System.out.println("完成注册账号的基本工作");
    }

    // TODO 同步发送邮件
    public void SycRegister() {
        boolean result = checkInfo(userName, passWord);
        if (!result) {
            System.out.println("账号，密码错误，注册失败");
        }

        // 注册账号 操作
        System.out.println("注册账户");


        // 发送邮件
        executeSendMail();

        System.out.println("完成注册账号的基本工作");
    }

    private boolean checkInfo(String userName, String passWord) {
        // 检验工作
        boolean result = true;
        return result;
    }


    @Override
    public void callBack() {
        System.out.println("执行一些异步操作完成之后的回调工作");
    }

    @Override
    public void executeSendMail() {
        System.out.println("-----------开始发送邮件------------");
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            System.out.println(e.getMessage());
        }
        System.out.println("-----------发送邮件成功------------");
    }
}
